﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServerClasses.interfaces;

namespace ServerClasses.implementaciones
{
    /// <see cref="ServerClasses.IAccesoADatos"/>
    class AccesoADatosImpl : IAccesoADatos
    {

        private ModeloDeDatosContainer modelo = new ModeloDeDatosContainer();


        public void agregarReceta(Receta receta) 
        {
            modelo.RecetaSet.AddObject(receta);
   
        }

      
        public void eliminarReceta(int idReceta)
        {

            var recetas = from r in modelo.RecetaSet 
                            where r.id == idReceta 
                            select r;
            if (recetas.Count() > 0) 
            {
                modelo.RecetaSet.DeleteObject(recetas.First());
            }

        }

       
        public void eliminarReceta(Receta receta)
        {
            if (receta != null) 
            {
                modelo.RecetaSet.DeleteObject(receta);
            }
        }

       
        public List<Receta> buscarRecetas(String texto)
        {
            var recetas = from r in modelo.RecetaSet
                          where r.titulo.Contains(texto)
                          select r;
            return recetas.ToList();
        }

        public Receta obtenerReceta(int id) 
        {
            var receta = from r in modelo.RecetaSet
                         where r.id == id
                         select r;

            if (receta != null && receta.Count()>0)
                return receta.First();
            else
                return null;
        }

       
        public void guardarCambios()
        {
            modelo.SaveChanges();
        }

    }
}
